package com.softer.chengxin.project.service;

import com.softer.chengxin.common.domin.CommonResult;
import com.softer.chengxin.common.domin.ManagerPageResult;
import com.softer.chengxin.common.domin.Page;
import com.softer.chengxin.project.domin.ProfitVO;
import com.softer.chengxin.project.domin.Project;

import java.util.List;

/**
 * @author Gong Zhiyang
 * @date 2018/9/26
 */
public interface ProjectService {
    /**
     * 查询项目列表
     *
     * @param id        企业ID
     * @param projectId 项目ID
     * @return 项目列表
     */
    List<Project> queryProjectList(Integer id, String projectId);

    /**
     * 删除项目
     *
     * @param id 项目ID
     * @return 结果
     */
    CommonResult delete(Integer id);

    /**
     * 提交项目
     *
     * @param id 项目ID
     * @return 结果
     */
    CommonResult submit(Integer id);

    /**
     * 查询项目信息列表
     *
     * @param page    页面实体
     * @param project 查询实体
     * @return 列表
     */
    ManagerPageResult query(Page page, Project project);

    /**
     * 增加项目信息
     *
     * @param project 项目实体
     * @return 增加结果
     */
    CommonResult add(Project project);

    /**
     * 查询具体项目信息
     *
     * @param id 项目ID
     * @return 项目信息
     */
    Project detail(Integer id);

    /**
     * 查询项目经营情况
     *
     * @param projectId 项目id
     * @return 项目经营情况信息
     */
    ProfitVO projectOperation(String projectId);

    /**
     * 编辑项目信息
     *
     * @param project 项目实体
     * @return 编辑结果
     */
    CommonResult edit(Project project);

    /**
     * 获取企业下所有项目
     *
     * @param id 企业ID
     * @return 项目列表
     */
    List<Project> getAllProject(Integer id);

    /**
     * 项目下拉列表，用于人员调动
     *
     * @param id        企业ID
     * @param projectId 项目ID
     * @return 项目列表
     */
    List<Project> getProjectListForPerson(Integer id, String projectId);

    /**
     * 查询项目
     *
     * @param id 企业ID
     * @return
     */
    List<Project> selectAllProject(Integer id);
}
